package com.wxxymaker.init;

import com.blade.ioc.annotation.Bean;
import com.blade.task.annotation.Schedule;
import com.wxxymaker.utils.Const;
import com.wxxymaker.utils.FileUtils;
import com.wxxymaker.utils.SimpleCache;
import lombok.extern.slf4j.Slf4j;

import java.util.List;
import java.util.Map;

/**
 * @Author: Soft
 * @Date: 2018/7/16 14:52
 * @Desc:
 */
@Slf4j
@Bean
public class ScheduleTask {

    /**
     * 每天临晨2点清空临时文件夹和缓存
     */
    @Schedule(cron = "0 0 2 * * ? *")
    public void clearTemp() {
        FileUtils.clearTemp();

        // 8.21 image文件夹清理，保证不会出现垃圾文件
        Map temps = (Map) SimpleCache.get(Const.tempImgKey);
        temps.forEach((k, v)->{
            ((List<String>) v).forEach(FileUtils::deleteByWebPath);
        });
        SimpleCache.clearNoLock();
    }

    /**
     * 每三十分钟清空一次ip记录
     */
    @SuppressWarnings("unchecked")
    @Schedule(cron = "0 0/30 * * * ? *")
    public void clearIps() {
        try {
            ((List<String>) SimpleCache.get(Const.ipKey)).clear();
        } catch (Exception e) {
            log.error("清空ip记录失败！{}", e.getMessage());
        }
    }
}
